package com.roden.study.java.net;

import org.junit.Test;

import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Socket;
import java.net.SocketAddress;

/**
 * @Author luodeng
 * @create 2021/9/8 18:07

 * http.proxyHost：代理服务器的主机名，默认不设置此系统属性。
 * System.setProperty("http.proxyHost", "localhost");
 * http.proxyPort:代理服务器的端口号，默认不设置此系统属性。
 * System.setProperty("http.proxyPort", 1080);
 * http.noneProxyHosts:不需要代理访问的主机名，多个用竖线|分隔，默认不设置此系统属性。 
 * System.setProperty("http.noneProxyHosts", "www.baidu.com|github.com");   
 *
 * Proxy.Type.DIRECT：直连，也就是不使用代理。
 * Proxy.Type.HTTP：HTTP代理。
 * Proxy.Type.SOCKS：socket的V4或者V5版本的代理。
 */
public class ProxyTest {

    @Test
    public void agent(){
        //JAVA设置代理的两种方式（HTTP和HTTPS）
        // 一、直接设置系统属性，设置后所有网络请求都有效
        System.setProperty("proxyType", "4");
        System.setProperty("proxyPort", "8866");
        System.setProperty("proxyHost", "127.0.0.1");
        System.setProperty("proxySet", "true");
        // 二、用用java.net.Proxy类
        SocketAddress socketAddress = new InetSocketAddress("localhost", 80);
        Proxy proxy = new Proxy(Proxy.Type.HTTP, socketAddress);
        Socket socket = new Socket(proxy);
    }
}
